import fs from 'fs'
import path from 'path'

// __dirname是commonjs规范的内置变量。如果使用了esm，是不会注入这个变量的。所以需要使用fileURLToPath来获取当前文件的绝对路径
import { fileURLToPath } from 'url'
const __filenameNew = fileURLToPath(import.meta.url)
const __dirnameNew = path.dirname(__filenameNew)

const fileName = 'README'
const start = process.hrtime();

// 指定Markdown文件的路径
const filePath = path.join(__dirnameNew, `${fileName}.md`);

fs.readFile(filePath, 'utf8', (err, data) => {
    if (err) {
        console.error("读取文件时发生错误:", err);
        return;
    }
    let markdownData = data
    const newMarkdownData = markdownData.replace(/!\[\]\((.*?)\)/g, (match, p1) => {
        // 读取图片文件
        const buffer = fs.readFileSync(p1);
        // 将Buffer转换为Base64编码
        const base64String = buffer.toString('base64');
        // 返回新的Markdown格式
        return `![](data:image/png;base64,${base64String})`;
    });
    fs.writeFileSync(`new-${fileName}.md`, newMarkdownData)

    const end = process.hrtime(start);
    // 将结果转换为毫秒
    const elapsedTimeInMs = (end[0] * 1000 + end[1] / 1e6).toFixed(3);
    console.log(`执行耗时: ${elapsedTimeInMs} 毫秒`);
});
